﻿public namespace System.Console
{
	@JSImport("$System.Console.WriteLine")
	public abstract function WriteLine(string str);
	@JSImport("$System.Console.WriteLine")
	public abstract function WriteLine();
	@JSImport("$System.Console.Write")
	public abstract function Write(string str);
	@JSImport("$System.Console.Write")
	public abstract function Write(int i);	
	@JSImport("$System.Console.Write")
	public abstract function Write(float i);		
}

public namespace NSpace
{
	using System.Console;
	
	public interface MyIface
	{
		public abstract function Foo();
	}
	
	public interface SecondIface
	{
		public abstract property string Name { get; }
	}
	
	public class MyClass : MyIface, SecondIface
	{
		public ctor( string name )
		{
			Name = name;
		}
		
		public function Foo() { }
		public property string Name { get { } set { } }
	}

	public class SecondClass : MyIface, SecondIface
	{
		public function Foo() { }
		public property string Name { get { } set { } }
	}
	
	public class ThirdClass : SecondClass
	{
		public override function Foo() { }
		public override property string Name { get { } }
		public var int Age = 42;
		public var string Surname = "Torben";
		public var MyClass Nonsense = new MyClass("Hallo");
		public var SecondClass Nonsense2 = new SecondClass();
		public static var int MaxAge = 102 * 32;
		public var bool b = !true;
		public property string Dummy
		{
			get
			{
				return Name;
			}
			set
			{
				Surname = value;
				var string x = null;
				x = Name;
				Name = x;
				Name += "Hallo";
				if ( Name == "Hallo" )
				{
					x = Name;
				}
				else if ( Name == "Torben" )
				{
					x = "Oho";
				}
				else
				{
					x = "Doof";
				}
				var j = 0;
				while( j < 10 )
				{
					j = j + 1;
				}
				do
				{
					j = j - 1;
				} while( j > 0 );
				for( var i = 0; i < 10; ++i )
				{
					var k = i;
					if ( i == 8 ) { break; }
				}
				var list<string> names = null;
				foreach( var s in names )
				{
					var ss = s;
					System.Console.WriteLine(ss);
					WriteLine(s);
				}
			}
		}	
	}
	
	var x = 0;
	System.Console.Write(x);
	System.Console.WriteLine();
}